export function formatDate (date, fmt) {
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    let o = {
        'M+': date.getMonth() + 1,
        'd+': date.getDate(),
        'h+': date.getHours(),
        'm+': date.getMinutes(),
        's+': date.getSeconds()
    };
    for (let k in o) {
        if (new RegExp(`(${k})`).test(fmt)) {
            let str = o[k] + '';
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
        }
    }
    return fmt;
};

function padLeftZero (str) {
    return ('00' + str).substr(str.length);
};

/**
 * 返回增加的天数
 * @param date 基准日期 默认当天当前时间
 * @param fmt  格式(可为空，默认：yyyy-MM-dd HH:mm:ss)
 * @param add  增加的时间 默认：1
 * @param type  增加的单位 y年，M月，d日，H小时，m分钟，s秒 默认d
 * @returns {*}
 * @constructor
 */
export function DateAdd (date, fmt,add,type) {
    if(date==null||date=="")
        date=new Date();
    if(add==0||add==""||add==null)
        add=1;
    if(fmt==""||fmt==null)
        fmt="yyyy-MM-dd HH:mm:ss";
    if(type==""||type==null||type.length>1)
        type="d";
    var tmpdate = new Date(date);
    switch (type){
        case "y":
            tmpdate.setFullYear(tmpdate.getFullYear() + add);
            break;
        case "M":
            tmpdate.setMonth(tmpdate.getMonth() + add);
            break;
        case "d":
            tmpdate.setDate(tmpdate.getDate() + add);
            break;
        case "H":
            tmpdate.setHours(tmpdate.getHours()+add);
            break;
        case "m":
            tmpdate.setMinutes(tmpdate.getMinutes()+add);
            break;
        case "s":
            tmpdate.setSeconds(tmpdate.getSeconds()+add);
            break;
    }
    return formatDate(new Date(tmpdate.getFullYear()+"-"+tmpdate.getMonth()+"-"+tmpdate.getDate()+" "+tmpdate.getHours()+":"+tmpdate.getMinutes()+":"+tmpdate.getSeconds()),fmt);
};

/**
 * 是否为闰年
 * @param year
 * @returns {boolean}
 */
export function isLeapYear(year) {  return (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);  }
